from dataclasses import dataclass
from datetime import datetime
from typing import Union, Dict
import pandas as pd

@dataclass
class MarketEvent:
    """市场事件类，用于传递市场数据更新"""
    timestamp: datetime
    type: str  # 事件类型
    exchange: str  # 交易所
    symbol: str  # 交易对
    data: Union[pd.DataFrame, Dict]  # 市场数据，可以是DataFrame或字典

@dataclass
class SignalEvent:
    """交易信号事件类，用于传递交易信号"""
    timestamp: datetime
    type: str  # 事件类型 'SIGNAL'
    exchange: str  # 交易所
    symbol: str  # 交易对
    signal_type: str  # 信号类型 'entry' or 'exit'
    side: str  # 方向 'long' or 'short'
    price: float  # 信号价格
    strength: float  # 信号强度 0.0-1.0
